#ifndef __XFILE_CRYPT_H__
#define __XFILE_CRYPT_H__

#include <memory>
#include <string>

class XWriteTask;
class XReadTask;
class XCryptTask;

class XFileCrypt
{
public:
    bool start(const std::string &infile, const std::string &outfile, 
        const std::string &passwd, bool isEncrypt);
    void wait();
private:
    std::shared_ptr<XReadTask> readTask_;
    std::shared_ptr<XCryptTask> cryptTask_;
    std::shared_ptr<XWriteTask> writeTask_;
};


#endif
